package top.chmin.project.cloud.common.entity.auto;

// field import auto
// #bind.field.id#

import top.chmin.project.cloud.common.entity.*;

/**
 * chmin
 * 2023-12-27 14:43:41
 * cloud-builder
 */
public class EntityFPC extends PreCondition {

    public EntityFPC() {
    }

    public EntityFPC(EntityFPC parent) {
        super(parent);
    }

    public EntityFPC forDelete() {
        type = "DELETE";
        return this;
    }

    public EntityFPC forCount() {
        type = "COUNT";
        return this;
    }

    public EntityFPC forDistinct() {
        type = "DISTINCT";
        return this;
    }

    public EntityFPC limit(int limit) {
        super.limit = limit;
        return this;
    }

    public EntityFPC sub() {
        return new EntityFPC(this);
    }

    public EntityFPC complete(boolean and) {
        finish(and);
        return parent == null ? this : (EntityFPC) parent;
    }

    public Condition toCondition() {
        return toCondition(Entity.class, "bs_entity");
    }

    // field fpc auto
// #bind.field.id#
    public Id id() {
        return new Id();
    }

    public class Id extends LongFPCField<EntityFPC> {
        private Id() {
            super(EntityFPC.this, "id");
        }
    }
// $bind.field.id$

    // #bind.field.createBy#
    public CreateBy createBy() {
        return new CreateBy();
    }

    public class CreateBy extends StringFPCField<EntityFPC> {
        private CreateBy() {
            super(EntityFPC.this, "create_by");
        }
    }
// $bind.field.createBy$

    // #bind.field.updateBy#
    public UpdateBy updateBy() {
        return new UpdateBy();
    }

    public class UpdateBy extends StringFPCField<EntityFPC> {
        private UpdateBy() {
            super(EntityFPC.this, "update_by");
        }
    }
// $bind.field.updateBy$

    // #bind.field.createTime#
    public CreateTime createTime() {
        return new CreateTime();
    }

    public class CreateTime extends LocalDateTimeFPCField<EntityFPC> {
        private CreateTime() {
            super(EntityFPC.this, "create_time");
        }
    }
// $bind.field.createTime$

    // #bind.field.updateTime#
    public UpdateTime updateTime() {
        return new UpdateTime();
    }

    public class UpdateTime extends LocalDateTimeFPCField<EntityFPC> {
        private UpdateTime() {
            super(EntityFPC.this, "update_time");
        }
    }
// $bind.field.updateTime$

    // #bind.field.tableName#
    public TableName tableName() {
        return new TableName();
    }

    public class TableName extends StringFPCField<EntityFPC> {
        private TableName() {
            super(EntityFPC.this, "table_name");
        }
    }
// $bind.field.tableName$

    // #bind.field.prefix#
    public Prefix prefix() {
        return new Prefix();
    }

    public class Prefix extends StringFPCField<EntityFPC> {
        private Prefix() {
            super(EntityFPC.this, "prefix");
        }
    }
// $bind.field.prefix$

    // #bind.field.className#
    public ClassName className() {
        return new ClassName();
    }

    public class ClassName extends StringFPCField<EntityFPC> {
        private ClassName() {
            super(EntityFPC.this, "class_name");
        }
    }
// $bind.field.className$

    // #bind.field.module#
    public Module module() {
        return new Module();
    }

    public class Module extends StringFPCField<EntityFPC> {
        private Module() {
            super(EntityFPC.this, "module");
        }
    }
// $bind.field.module$

    // #bind.field.pack#
    public Pack pack() {
        return new Pack();
    }

    public class Pack extends StringFPCField<EntityFPC> {
        private Pack() {
            super(EntityFPC.this, "pack");
        }
    }
// $bind.field.pack$

    // #bind.field.path#
    public Path path() {
        return new Path();
    }

    public class Path extends StringFPCField<EntityFPC> {
        private Path() {
            super(EntityFPC.this, "path");
        }
    }
// $bind.field.path$

    // #bind.field.remark#
    public Remark remark() {
        return new Remark();
    }

    public class Remark extends StringFPCField<EntityFPC> {
        private Remark() {
            super(EntityFPC.this, "remark");
        }
    }
// $bind.field.remark$

    // #bind.field.tableCode#
    public TableCode tableCode() {
        return new TableCode();
    }

    public class TableCode extends StringFPCField<EntityFPC> {
        private TableCode() {
            super(EntityFPC.this, "table_code");
        }
    }
// $bind.field.tableCode$

}